home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / STUTTGART / UTIL / MEMORY / OLD / MEM208BIN / !Memphis / !Help < prev    next >
Text File  |  1993-09-10  |  11KB  |  240 lines

  1. Memphis: Early capital of ancient Egypt, on W. bank of Nile S. of Cairo.
  2.        & Tennessee USA on Mississippi, Martin Luther King assassinated 1968.
  3.  
  4. About MemFS 2.08
  5. ================
  6.  
  7. Memphis is a replacement RAM-based filing system (with lots of knobs on!)
  8. that uses the System Sprite area rather than the RAM disc area. In
  9. particular it provides;
  10.  
  11. * Provides a dynamically resizeable ramdisc by using the system sprite area
  12.   for storage. (In sprites so it's compatible with other users)
  13.  
  14. * Up to 30 character file names (beware old filer 10-char bug).
  15.  
  16. * 2.00 has a new storage scheme, that can use a slave filing system
  17.   instead of the Sprite area. Try Filer_Opendir Mem#adfs;;4.$.MemDisc:$
  18.   Note the semicolons - they are important. This is useful if you need
  19.   to use long file names or many files in a directory. Notice that
  20.   it may take memfs up to 3 seconds after use before the disc is updated.
  21.   Each file is compressed by the Acorn "Squash" module in ROM.
  22.   *** Note that 2.xx is incompatible with previous versions, so discard any
  23.   saved sprite areas you may have.
  24.  
  25. * Filer now has a quit menu á la RO3 ramfsfiler, and files can be dropped
  26.   into it directly (from an application saveas box or from filer)
  27.  
  28. * Automatic creation of directories in path of a created file.
  29.  
  30. * Automatically grows and shrinks sprite area, but this can only happen when
  31.   the system allows. It only shrinks down enough to leave the configured
  32.   spritesize free, and only shrinks when deleting, so you can drag it large
  33.   to make space before operations during which it cannot grow. This means
  34.   *COPY, principally, since that claims all free memory during its operation.
  35.  
  36. It is ideal for use as a scrap device - this is not set by default in the
  37. !Run file, but users who want this feature can easily enable it by editing
  38. the !Run file.
  39.  
  40. Start by running the memfs application, then use it like the ramdisc, except
  41. it can be resized with stuff in. It will not work under RISCOS 2.
  42.  
  43. I am pretty sure that this works, but there may well still be bugs, so
  44. please don't commit irreplaceable data to it!
  45.  
  46. Technical
  47. =========
  48.  
  49. A nearly full riscos file system, supports everything except (I think): 
  50. * Wildcarded: *access, *info, *fileinfo, Open
  51. * options, disc names. 
  52. * URD(&) - easy to do if demand, but I morally disapprove.
  53. * Does not sort *CAT/*EX output
  54.  
  55. The error message "Lost inode" means that MemFS was unable to find a sprite
  56. it expected to. It will use any file structure that it finds already present
  57. when it is loaded, so if you want you can save the entire contents with
  58. *ssave, and load it again with *sload.      
  59.  
  60. The memfs and memfsfiler modules should work ok when loaded outside the
  61. Wimp, and behave as a standard fs/filer pair. The filer needs a sprite
  62. called memfs in the wimp sprite pool. Of course, it will be difficult to
  63. extend the sprite area when anything is running in single tasking mode.
  64.  
  65. Some suboptimal algorithms. Unsorted directories are searched linearly :-(
  66.  
  67. The sources-distribution of memfs comes with 'FSLib' which is an ALF
  68. library that provides a very easy interface for writing FileSwitch filing
  69. systems. See FSLib docs for more details.
  70.  
  71. Data Format
  72. ===========
  73.  
  74. This information is only provided to allow you to recover mangled data in
  75. extremis. Each file or directory gets an inode number>0. An inode is found
  76. either in the sprite mfsXXXXXXXX (XXX the number in hex) or if memfs is
  77. hosted, in a file <specialfield>,.X,.X,.X,.X (XXX the number base 32).
  78. Directories are composed of 512 byte pages, each page filled with inode
  79. number/0-terminated name pairs, each word aligned, all except the last
  80. terminated by -3. Inode 0 is special, and holds the properties of all other
  81. inodes. It is a table of entries, each 6 words: load, exec, length,
  82. allocated, attr, parentinode. Entry 0 has parentinode indicating a chain of
  83. free inodes linked by then parentinode entries.
  84.  
  85. Dedications
  86. ===========
  87.  
  88. This project was written in C and produced using the FSinC stuff from Jon
  89. Roach of Acorn, as heavily hacked by me.
  90.  
  91. The idea of using the sprite area as a dynamic method of allocating space
  92. came to Nicko Van Someren, in a flash of insight during a conversation we
  93. had. This was several months after I had given up on an attempt at this
  94. using the ramfs dynamic area due to the evil that riscos perpetrates when
  95. one calls ChangeDynamic area on that, and settled for the horrible solution
  96. of the RMA, which would never shrink.
  97.  
  98. It is dedicated to debugging via printf :-(
  99.  
  100. Reporting problems:
  101. ==================
  102.  
  103. Please read this BEFORE sending me any reports of problems! With a complex
  104. (and buggy!) program like !Memphis, I get a fair few email messages of the
  105. form "I ran your !Memphis, and it didn't work - what am I doing wrong?"
  106.  
  107. PLEASE don't send me such unhelpful comments! Really, I need to know as much
  108. of the following as you can provide in the initial email;
  109.  
  110. * Your machine - model, memory, harddisc (interface), version of RISC OS,
  111.   other hardware or software that may be interfering with !Memphis.
  112. * If you were using a slave filing system, what was that filing system?
  113. * Version number of !Memphis
  114. * Exactly what you did from machine switch on until memfs failed to work
  115.   as expected
  116. * Exactly what happened - eg, did the machine crash completely with the
  117.   mouse pointer stopping ?
  118. * And ideally, the source file and changes required to fix the problem ;-) 
  119.   Obviously if you are not an experienced programmer you can't do this.
  120.  
  121. Distribution:
  122. ============
  123.  
  124. This software may be freely redistributed, so long as only a reasonable
  125. copying or media charge is made, and all files I distribute are included. I
  126. retain copyright to the code. Commercial (including magazine) distribution,
  127. or distributing modified versions of this please contact me - I am normally
  128. happy for it to be reused in other free software, but like to avoid deviant
  129. versions of mine causing trouble.
  130.  
  131. I am not asking for money, but if you like and use it I would be surprised
  132. and amazed by any contributions, and you will receive a disc with latest
  133. versions on. (>£10, say)
  134.  
  135. Brian Brunswick                              brian@aleph1.co.uk (Internet)
  136. Fairview                                  OR Brian.Brunswick@cl.cam.ac.uk          
  137. Avenue des Hirondelles
  138. Pool-in-WharfeDale
  139. Leeds
  140. LS21 1EY
  141. UK
  142. 0532 843737
  143.  
  144. Versions later than 2.00:
  145. ========================
  146.  
  147. Because Brian is now out 'in the real world' I (Nick Smith) am acting as a
  148. first line of support for !Memphis. I have tidied it up from the v2 beta
  149. release to the public release version, and will improve the program as I get
  150. feed back from users, etc. In particular I've done masses of work on the 
  151. desktop filer application. Currently, Brian wrote 90% of the actual software -
  152. so send him all that money in gratitude !
  153.  
  154. Please email or snail-mail me comments, bug reports, requests for new 
  155. features, etc. and I will hopefully have the time to deal with them. If you
  156. make any modifications to the code, please send them to me rather than 
  157. giving out copies - I would like to coordinate new releases. Thanks.
  158.  
  159. I can be contacted at the following address, at least until Jul '94 ;
  160.  
  161. N.A. Smith                                   nas20@cus.cam.ac.uk (Internet)
  162. Churchill College
  163. Cambridge
  164. CB3 0DS                 
  165.  
  166. Revision history:
  167. ================
  168.  
  169. Modifications to v2.00 (02-Sep-92) [bdb betarelease]
  170.   - Lots of new (broken) features added :-(
  171.  
  172. Modifications to v2.01 (30-Mar-93)
  173.   - Improved documention; added installation instructions, updated info,
  174.     added revision history, etc
  175.   - removed compilation dependency on having brian's harddrive 8-)
  176.   - did some slightly better !Sprites, with !Sprites22
  177.  
  178. Modifications to v2.02 (04-Apr-93)
  179.   - Large amount of work done to filer (no separate history) Loads of
  180.     new features, including; info dbox, create dbox for easy creation
  181.     of memdisc files on disc (uses dragasprite!), doesn't do *snew
  182.     upon quit anymore but just deletes memfs sprite files, filer windows
  183.     closed when memfsfiler quit, desktop save support (saves spritearea
  184.     to scrap file inside !Memphis), can adjust click on menu, etc ...
  185.   - MemFSFiler made RO 2.00 incompatible, but it is worth it!
  186.   - Mods to MemFS sources to get compiling with new FSLib code, still
  187.     some work required for it to actually function though !
  188.   - Memphis found in Tennessee, USA ;-)
  189.  
  190. Modifications to v2.03 (15-May-93)
  191.   - Got new memfs sources from bdb - now compiles & runs happily with
  192.     latest fslib. desktop free support broken ...
  193.   - Fixed freespace (needed enabling from fslib sources)
  194.                             
  195. Modifications to v2.04 (06-Jul-93)
  196.   - Fixed templates file
  197.   - New 3D-look templates - autoloads correct one based on setting of
  198.     '3D look' CMOS byte
  199.   - Sent filetype/FS number allocation request to Acorn Customer Support
  200.  
  201. Modifications to v2.05 (12-Aug-93)
  202.   - Improved documentation + reorganized 'todo' file for next public
  203.     release version
  204.   - Emailed Acorn customer services regarding distribution of FSLib 
  205.     sources + patched cmhg program
  206.   - Enabled query message on quit of memfiler when there is data in the
  207.     sprite area
  208.   - Shaved around 2-3Kb off the combined module size by recompiling with
  209.     '-ff' (no embedded function names). Also done with 'FSLib' library.
  210.   - Can now drag objects from the filer straight onto the memfs icon and
  211.     they are copied (or moved with shift) using m/tasking filer_action
  212.   - Filer now has integrated Darren Durbin's 'LockSNEW' module which 
  213.     filters out dangerous *SNew and *Sload commands. Can toggle filtering
  214.     on/off with *MemProtect/*MemNormal
  215.  
  216. Modifications to v2.06 (22-Aug-93)
  217.   - Got permission to distribute FSLib code from Acorn (yipee!) copyright
  218.     and disclaimer notices added
  219.   - Patch program for cmhg tool added + docs, because we aren't allowed
  220.     to distribute Acorn binaries without a license
  221.  
  222. Modifications to v2.07 (24-Aug-93)
  223.   - Got an Acorn-allocated FS number (91) and Filetype (&3f1) 
  224.  
  225. Modifications to v2.08 (08-Sep-93) [release]
  226.   - Fixed dragasprite (was looking at wrong CMOS bit)
  227.   - Corrected memcore filetype
  228.   - Got a whole load of new code from Brian - what am I going to do??!
  229.   - Fixed major bug in compressed pages code
  230.   - Added (c) messages to each source file
  231.     ReFormatted all text files to Mode 12 screen
  232.     Improved documentation a little
  233.   - Fixed bug with saveas dbox (3D version) *must* be 'Click', not
  234.     'Click+Drag' icon type for OK icon
  235.   - Vastly improved page compression/decompression routines, and fixed
  236.     uncompress (I hope!) to stop it bombing out filer_action ...
  237.   - Strange problem with system() screwing up Life As We Know It in
  238.     memfiler - using OS_CLI instead seems to cure the problem!
  239.  
  240.